在上一篇中,我們已經將登入介面MVP架構中,的View程式碼完成了,我們要繼續完成 MVP 的拼圖,帶大家實作 C(Contract) 和 P(Presenter) 的程式碼,讓整個登入流程真正「動起來」,不再只是靜態的 UI 介面。
**LoginContract.java – 明確定義角色分工 **
在 MVP 架構中,Contract 扮演「橋梁」的角色,用來規範 View 與 Presenter 之間的溝通方式。
以下是我們設計好的 LoginContract.java 程式碼:
public interface LoginContract {
public interface View {
void showDialog(String message);
void LoginSuccess();
void LoginError();
}
public interface Presenter {
void getLogin(String email, String password);
}
}
LoginPresenter.java – 登入邏輯的掌舵手
接下來是 MVP 中最核心的 Presenter。
它負責接收 View 傳來的帳號與密碼,並進行邏輯判斷。
以下是我們設計好的 LoginPresenter.java 程式碼:
package com.example.ittext.login;
import android.util.Log;
public class LoginPresenter implements LoginContract.Presenter{
private LoginContract.View view;
public LoginPresenter(LoginContract.View view) {
this.view = view;
}
public void getLogin(String email, String password) {
Log.d("LoginActivity", "LoginSuccess 被呼叫: " + email + password);
if(email.equals("123") && password.equals("123")){
view.LoginSuccess();
}else{
view.showDialog("登入失敗");
}
}
}